Delayed trim of managed NAND flash memory in computing devices

ABSTRACT

A method of managing NAND flash memory in an electronic device whereby system performance of the electronic device is minimally impacted is disclosed. The method comprises collecting files that are marked for deletion or truncation; monitoring an activity level of the electronic device; monitoring a total size of the list of files that are marked for deletion or truncation; determining if the electronic device is idle; and trimming the flash memory of the electronic device if predetermined criteria are met.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims the benefit of U.S. Patent Application No. 62/095,470 for Delayed Trim of Managed NAND Flash Memory in Computing Devices filed Dec. 22, 2014. The foregoing patent application is hereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The invention is generally related to flash memory in electronic devices, and, more specifically, to managing NAND flash memory.

BACKGROUND

In order for managed NAND flash memory to work properly, and to provide longevity in the field, the flash controller must be aware of which flash cells are ‘in use’. This “in-use” information is used to allow for wear leveling, and other flash maintenance. The traditional method available to keep the controller informed of unused blocks is to implement a TRIM command on each block, i.e. “trimming” the flash memory. Typically, a TRIM command permits an operating system to tell the flash controller which blocks of data are no longer in use, and can be erased and reused. However, implementing a TRIM command immediately upon deletion can have a significant impact on file system performance. Once a file is deleted, most file systems do not provide a low-impact method of determining which blocks are free, although they are able reuse those blocks at a future opportunity due to internal accounting in the file system. However, since the flash controller is not aware of these “unused” blocks, it is unable to use them for flash maintenance.

SUMMARY

In an aspect of the invention, a method of managing NAND flash memory in an electronic device, comprises collecting files that are marked for deletion or truncation; monitoring an activity level of the electronic device; monitoring a total size of the list of files that are marked for deletion or truncation; determining if the electronic device is idle; and trimming the flash memory of the electronic device if predetermined criteria are met; whereby system performance of the electronic device is minimally impacted.

In an embodiment, the method comprises loading a file system filter driver at boot time of the electronic device.

In another embodiment, the method comprises setting a correct filter mode of the file system driver.

In another embodiment, the method comprises assigning a thread priority to the file system filter driver

In yet another embodiment, the method comprises creating hooks to a file system of the electronic device from the file system device driver.

In another embodiment, the method comprises extending file system I/O functions to the file system device driver.

In another embodiment, the method comprises spawning a process to monitor idle time of the electronic device.

In an embodiment, the method comprises creating a system folder to contain files marked for deletion or truncation.

In another embodiment, the method comprises spawning a process to monitor the system folder.

In yet another embodiment, the method comprises moving files marked for deletion or truncation to a system folder.

In an embodiment, trimming the flash memory of the electronic device occurs after the system folder exceeds a predetermined size.

In an embodiment, trimming the flash memory of the electronic device occurs at the next reboot of the electronic device.

In an embodiment, trimming the flash memory of the electronic device occurs when the electronic device is determined to be idle.

In another aspect of the invention, a method of managing NAND flash memory in an electronic device comprises providing an electronic device having a NAND flash memory with a file system, and an operating system having file system I/O functions; providing a file system filter driver on the electronic device, the file system filter driver operative to: execute file system I/O functions of the operating system, monitor an activity level of the electronic device, create a system folder to contain files that are marked for deletion or truncation, move files that are marked for deletion or truncation to the system folder, determine if the electronic device is idle, monitor the size of the system folder, and trim the flash memory of the electronic device if a predetermined criteria are met; whereby system performance of the electronic device is minimally impacted by TRIM operations of the flash memory.

In an embodiment, the method comprises configuring the electronic device to load the file system filter driver at boot time of the electronic device.

In an embodiment, the file system filter driver is operative to spawn a process to monitor idle time of the electronic device.

In another embodiment, the file system filter driver is operative to spawn a process to monitor the system folder.

In yet another embodiment, the file system filter driver is operative to trim the flash memory of the electronic device after the system folder exceeds a predetermined size.

In another embodiment, the file system filter driver is operative to trim the flash memory of the electronic device at the next reboot of the electronic device.

In yet another embodiment, the file system filter driver is operative to trim the flash memory of the electronic device when the electronic device is determined to be idle.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described by way of example, with reference to the accompanying Figures, of which:

FIG. 1 is a block diagram of an electronic device with software operative for managing NAND flash memory;

FIG. 2 is a flowchart of a method of managing NAND flash memory on an electronic device; and

FIG. 3 is a flowchart of a method of installing and setting up software on an electronic device that is operative for managing NAND flash memory.

DETAILED DESCRIPTION

Generally, a method of managing NAND flash memory in an electronic device minimizes the system performance impact of TRIM operations of the flash memory. As described in further detail below, the method includes providing an electronic device having NAND flash memory with a file system, an operating system having file system I/O functions and providing a file system filter driver on the electronic device. The file system filter driver is operative to execute file system I/O functions of the operating system; monitor an activity level of the electronic device; create a system folder to contain files that are marked for deletion or truncation; move the files that are marked for deletion or truncation to the system folder; determine if the electronic device is idle; and trim the flash memory of the electronic device during an optimal period, such as idle time, a reboot or if the system folder has exceeded a predetermined size.

Referring to FIG. 1, an exemplary electronic device 100 includes a processor 102, a flash memory controller 104, NAND flash memory 106, and at least one host file system 107. System folders 108, as described further below, are operative for temporarily accumulating files marked for deletion or truncation. The file system 107 is stored within the flash memory 106. The system folders 108 are in turn stored in the file system 107. The electronic device 100 further includes memory 110. The electronic device 100 includes an operating system 112 and file system filter driver 114, for managing deletions from the file system 107. The file system filter driver 114 includes an IdleThread thread 116 and a TrimThread thread 118, which will be described in greater detail below, which monitor the activity of the electronic device 100 and size of the system folders 108, respectively.

Referring to FIG. 2, the file system filter driver 114 is implemented to keep track of which files have been marked for deletion or truncation at 200. The file system filter driver 114 collects these marked files. The file system filter driver 114 further monitors the activity level of the device 204 and the total size of the files marked for deletion or truncation 206. The file system filter driver 114 further determines when the electronic device 100 is idle 208 and “trims” the flash memory at an optimal time 210. By keeping these files set aside, a TRIM command may be executed at a later time to delete and/or truncate the files. In accordance with the disclosure, instead of immediately deleting the files (and removing knowledge as to blocks that belong to this file) at the time the user requests the delete, the file is renamed or moved instead. This allows the record of now unused blocks to be maintained and protected. Then, the marked files may be deleted with the TRIM command at an appropriate time. That appropriate time may be at the next reboot, after a certain amount of ‘files-to-trim’ exist, or when the system is known to be less busy, so the performance impact will not be noticed by the user.

Referring to FIG. 3, the method of setting up the electronic device to implement the method of managing NAND flash memory is shown generally at 300. The file system filter driver 114 is loaded at boot time 302. Upon boot, the file system filter drive 114 reads the registry for the correct “FilterMode” desired to be set 304. The registry (in Windows systems) is also read for the correct thread priority desired to be assign the file system filter driver thread (i.e. process) 306. The file system filter driver 114 will also setup hooks to certain volumes on the file system 308. This allows the File System Manager to know when to call into the file system filter driver 114. The File System I/O functions such as DeleteFile, CreateFolder, RemoveFolder, etc., are also extended to the file system filter driver 114 to enable these functions to be called directly 310. The functions to be exported can be found in the .def file of the file system driver filter 114 in Windows systems.

Once this setup is completed, the file system driver filter 114 creates one or more system folders where files can be moved to for later trimming 312. The title of these system folders may be “$Trim.bin” or other suitable filename. The location may be at the root of the file system or other suitable location. This folder is also designated as a system folder and hidden to prevent inadvertent tampering of the contents. The file system driver filter 114 spawns two threads 314, 316. Specifically, the IdleThread and the TrimThread. The purpose of the IdleThread is to measure the systems idle time. The purpose of the TrimThread is to constantly monitor the $Trim.bin folders for any files to be trimmed. Once found, and the correct system conditions are detected, the file system filter driver 114 can now execute a TRIM command to trim the files based on the previously set Filter Mode.

The TrimThread thread constantly monitors conditions in the system. As mentioned earlier, certain conditions can allow the TrimThread not to trim files. These conditions may be: the system being in a busy state and being suspended. The TrimThread can also adjust itself to certain system conditions where files are trimmed more aggressively. These conditions may include being in “flush” mode and being close to reaching the maximum size of the trim folder.

Files are only moved to the $Trim.bin folder when a user calls the customer facing DeleteFile API on the volume into which the file system filter driver 114 has created a hook. Most of the other functions that have been exported simply relay the user's commands down to the other Filters that may or may not be set up on the electronic device.

In summary, those of ordinary skill in the art would appreciate from the foregoing description and illustrations that the disclosed method of managing NAND flash memory enhances the overall performance of the electronic device. By saving the deletion and truncation of files for a time when the electronic device is idle, the impact of TRIM commands on the system performance of the electronic device is minimized to the user, thus enhancing the user's productivity.

While there is shown and described herein certain specific structure embodying the disclosure, it will be manifest to those skilled in the art that various modifications and rearrangements of the parts may be made without departing from the spirit and scope of the underlying concept and that the same is not limited to the particular forms herein shown and described except insofar as indicated by the scope of the appended claim.

To supplement the present disclosure, this application incorporates entirely by reference the following patents, patent application publications, and patent applications:

-   U.S. Pat. Nos. 6,832,725; 7,128,266; -   U.S. Pat. Nos. 7,159,783; 7,413,127; -   U.S. Pat. Nos. 7,726,575; 8,294,969; -   U.S. Pat. Nos. 8,317,105; 8,322,622; -   U.S. Pat. Nos. 8,366,005; 8,371,507; -   U.S. Pat. Nos. 8,376,233; 8,381,979; -   U.S. Pat. Nos. 8,390,909; 8,408,464; -   U.S. Pat. Nos. 8,408,468; 8,408,469; -   U.S. Pat. Nos. 8,424,768; 8,448,863; -   U.S. Pat. Nos. 8,457,013; 8,459,557; -   U.S. Pat. Nos. 8,469,272; 8,474,712; -   U.S. Pat. Nos. 8,479,992; 8,490,877; -   U.S. Pat. Nos. 8,517,271; 8,523,076; -   U.S. Pat. Nos. 8,528,818; 8,544,737; -   U.S. Pat. Nos. 8,548,242; 8,548,420; -   U.S. Pat. Nos. 8,550,335; 8,550,354; -   U.S. Pat. Nos. 8,550,357; 8,556,174; -   U.S. Pat. Nos. 8,556,176; 8,556,177; -   U.S. Pat. Nos. 8,559,767; 8,599,957; -   U.S. Pat. Nos. 8,561,895; 8,561,903; -   U.S. Pat. Nos. 8,561,905; 8,565,107; -   U.S. Pat. Nos. 8,571,307; 8,579,200; -   U.S. Pat. Nos. 8,583,924; 8,584,945; -   U.S. Pat. Nos. 8,587,595; 8,587,697; -   U.S. Pat. Nos. 8,588,869; 8,590,789; -   U.S. Pat. Nos. 8,596,539; 8,596,542; -   U.S. Pat. Nos. 8,596,543; 8,599,271; -   U.S. Pat. Nos. 8,599,957; 8,600,158; -   U.S. Pat. Nos. 8,600,167; 8,602,309; -   U.S. Pat. Nos. 8,608,053; 8,608,071; -   U.S. Pat. Nos. 8,611,309; 8,615,487; -   U.S. Pat. Nos. 8,616,454; 8,621,123; -   U.S. Pat. Nos. 8,622,303; 8,628,013; -   U.S. Pat. Nos. 8,628,015; 8,628,016; -   U.S. Pat. Nos. 8,629,926; 8,630,491; -   U.S. Pat. Nos. 8,635,309; 8,636,200; -   U.S. Pat. Nos. 8,636,212; 8,636,215; -   U.S. Pat. Nos. 8,636,224; 8,638,806; -   U.S. Pat. Nos. 8,640,958; 8,640,960; -   U.S. Pat. Nos. 8,643,717; 8,646,692; -   U.S. Pat. Nos. 8,646,694; 8,657,200; -   U.S. Pat. Nos. 8,659,397; 8,668,149; -   U.S. Pat. Nos. 8,678,285; 8,678,286; -   U.S. Pat. Nos. 8,682,077; 8,687,282; -   U.S. Pat. Nos. 8,692,927; 8,695,880; -   U.S. Pat. Nos. 8,698,949; 8,717,494; -   U.S. Pat. Nos. 8,717,494; 8,720,783; -   U.S. Pat. Nos. 8,723,804; 8,723,904; -   U.S. Pat. No. 8,727,223; U.S. Pat. No. D702,237; -   U.S. Pat. Nos. 8,740,082; 8,740,085; -   U.S. Pat. Nos. 8,746,563; 8,750,445; -   U.S. Pat. Nos. 8,752,766; 8,756,059; -   U.S. Pat. Nos. 8,757,495; 8,760,563; -   U.S. Pat. Nos. 8,763,909; 8,777,108; -   U.S. Pat. Nos. 8,777,109; 8,779,898; -   U.S. Pat. Nos. 8,781,520; 8,783,573; -   U.S. Pat. Nos. 8,789,757; 8,789,758; -   U.S. Pat. Nos. 8,789,759; 8,794,520; -   U.S. Pat. Nos. 8,794,522; 8,794,525; -   U.S. Pat. Nos. 8,794,526; 8,798,367; -   U.S. Pat. Nos. 8,807,431; 8,807,432; -   U.S. Pat. Nos. 8,820,630; 8,822,848; -   U.S. Pat. Nos. 8,824,692; 8,824,696; -   U.S. Pat. Nos. 8,842,849; 8,844,822; -   U.S. Pat. Nos. 8,844,823; 8,849,019; -   U.S. Pat. Nos. 8,851,383; 8,854,633; -   U.S. Pat. Nos. 8,866,963; 8,868,421; -   U.S. Pat. Nos. 8,868,519; 8,868,802; -   U.S. Pat. Nos. 8,868,803; 8,870,074; -   U.S. Pat. Nos. 8,879,639; 8,880,426; -   U.S. Pat. Nos. 8,881,983; 8,881,987; -   U.S. Pat. Nos. 8,903,172; 8,908,995; -   U.S. Pat. Nos. 8,910,870; 8,910,875; -   U.S. Pat. Nos. 8,914,290; 8,914,788; -   U.S. Pat. Nos. 8,915,439; 8,915,444; -   U.S. Pat. Nos. 8,916,789; 8,918,250; -   U.S. Pat. Nos. 8,918,564; 8,925,818; -   U.S. Pat. Nos. 8,939,374; 8,942,480; -   U.S. Pat. Nos. 8,944,313; 8,944,327; -   U.S. Pat. Nos. 8,944,332; 8,950,678; -   U.S. Pat. Nos. 8,967,468; 8,971,346; -   U.S. Pat. Nos. 8,976,030; 8,976,368; -   U.S. Pat. Nos. 8,978,981; 8,978,983; -   U.S. Pat. Nos. 8,978,984; 8,985,456; -   U.S. Pat. Nos. 8,985,457; 8,985,459; -   U.S. Pat. Nos. 8,985,461; 8,988,578; -   U.S. Pat. Nos. 8,988,590; 8,991,704; -   U.S. Pat. Nos. 8,996,194; 8,996,384; -   U.S. Pat. Nos. 9,002,641; 9,007,368; -   U.S. Pat. Nos. 9,010,641; 9,015,513; -   U.S. Pat. Nos. 9,016,576; 9,022,288; -   U.S. Pat. Nos. 9,030,964; 9,033,240; -   U.S. Pat. Nos. 9,033,242; 9,036,054; -   U.S. Pat. Nos. 9,037,344; 9,038,911; -   U.S. Pat. Nos. 9,038,915; 9,047,098; -   U.S. Pat. Nos. 9,047,359; 9,047,420; -   U.S. Pat. Nos. 9,047,525; 9,047,531; -   U.S. Pat. Nos. 9,053,055; 9,053,378; -   U.S. Pat. Nos. 9,053,380; 9,058,526; -   U.S. Pat. Nos. 9,064,165; 9,064,167; -   U.S. Pat. Nos. 9,064,168; 9,064,254; -   U.S. Pat. Nos. 9,066,032; 9,070,032; -   U.S. Design Pat. No. D716,285; -   U.S. Design Pat. No. D723,560; -   U.S. Design Pat. No. D730,357; -   U.S. Design Pat. No. D730,901; -   U.S. Design Pat. No. D730,902; -   U.S. Design Pat. No. D733,112; -   U.S. Design Pat. No. D734,339; -   International Publication No. 2013/163789; -   International Publication No. 2013/173985; -   International Publication No. 2014/019130; -   International Publication No. 2014/110495; -   U.S. Patent Application Publication No. 2008/0185432; -   U.S. Patent Application Publication No. 2009/0134221; -   U.S. Patent Application Publication No. 2010/0177080; -   U.S. Patent Application Publication No. 2010/0177076; -   U.S. Patent Application Publication No. 2010/0177707; -   U.S. Patent Application Publication No. 2010/0177749; -   U.S. Patent Application Publication No. 2010/0265880; -   U.S. Patent Application Publication No. 2011/0202554; -   U.S. Patent Application Publication No. 2012/0111946; -   U.S. Patent Application Publication No. 2012/0168511; -   U.S. Patent Application Publication No. 2012/0168512; -   U.S. Patent Application Publication No. 2012/0193423; -   U.S. Patent Application Publication No. 2012/0203647; -   U.S. Patent Application Publication No. 2012/0223141; -   U.S. Patent Application Publication No. 2012/0228382; -   U.S. Patent Application Publication No. 2012/0248188; -   U.S. Patent Application Publication No. 2013/0043312; -   U.S. Patent Application Publication No. 2013/0082104; -   U.S. Patent Application Publication No. 2013/0175341; -   U.S. Patent Application Publication No. 2013/0175343; -   U.S. Patent Application Publication No. 2013/0257744; -   U.S. Patent Application Publication No. 2013/0257759; -   U.S. Patent Application Publication No. 2013/0270346; -   U.S. Patent Application Publication No. 2013/0287258; -   U.S. Patent Application Publication No. 2013/0292475; -   U.S. Patent Application Publication No. 2013/0292477; -   U.S. Patent Application Publication No. 2013/0293539; -   U.S. Patent Application Publication No. 2013/0293540; -   U.S. Patent Application Publication No. 2013/0306728; -   U.S. Patent Application Publication No. 2013/0306731; -   U.S. Patent Application Publication No. 2013/0307964; -   U.S. Patent Application Publication No. 2013/0308625; -   U.S. Patent Application Publication No. 2013/0313324; -   U.S. Patent Application Publication No. 2013/0313325; -   U.S. Patent Application Publication No. 2013/0342717; -   U.S. Patent Application Publication No. 2014/0001267; -   U.S. Patent Application Publication No. 2014/0008439; -   U.S. Patent Application Publication No. 2014/0025584; -   U.S. Patent Application Publication No. 2014/0034734; -   U.S. Patent Application Publication No. 2014/0036848; -   U.S. Patent Application Publication No. 2014/0039693; -   U.S. Patent Application Publication No. 2014/0042814; -   U.S. Patent Application Publication No. 2014/0049120; -   U.S. Patent Application Publication No. 2014/0049635; -   U.S. Patent Application Publication No. 2014/0061306; -   U.S. Patent Application Publication No. 2014/0063289; -   U.S. Patent Application Publication No. 2014/0066136; -   U.S. Patent Application Publication No. 2014/0067692; -   U.S. Patent Application Publication No. 2014/0070005; -   U.S. Patent Application Publication No. 2014/0071840; -   U.S. Patent Application Publication No. 2014/0074746; -   U.S. Patent Application Publication No. 2014/0076974; -   U.S. Patent Application Publication No. 2014/0078341; -   U.S. Patent Application Publication No. 2014/0078345; -   U.S. Patent Application Publication No. 2014/0097249; -   U.S. Patent Application Publication No. 2014/0098792; -   U.S. Patent Application Publication No. 2014/0100813; -   U.S. Patent Application Publication No. 2014/0103115; -   U.S. Patent Application Publication No. 2014/0104413; -   U.S. Patent Application Publication No. 2014/0104414; -   U.S. Patent Application Publication No. 2014/0104416; -   U.S. Patent Application Publication No. 2014/0104451; -   U.S. Patent Application Publication No. 2014/0106594; -   U.S. Patent Application Publication No. 2014/0106725; -   U.S. Patent Application Publication No. 2014/0108010; -   U.S. Patent Application Publication No. 2014/0108402; -   U.S. Patent Application Publication No. 2014/0110485; -   U.S. Patent Application Publication No. 2014/0114530; -   U.S. Patent Application Publication No. 2014/0124577; -   U.S. Patent Application Publication No. 2014/0124579; -   U.S. Patent Application Publication No. 2014/0125842; -   U.S. Patent Application Publication No. 2014/0125853; -   U.S. Patent Application Publication No. 2014/0125999; -   U.S. Patent Application Publication No. 2014/0129378; -   U.S. Patent Application Publication No. 2014/0131438; -   U.S. Patent Application Publication No. 2014/0131441; -   U.S. Patent Application Publication No. 2014/0131443; -   U.S. Patent Application Publication No. 2014/0131444; -   U.S. Patent Application Publication No. 2014/0131445; -   U.S. Patent Application Publication No. 2014/0131448; -   U.S. Patent Application Publication No. 2014/0133379; -   U.S. Patent Application Publication No. 2014/0136208; -   U.S. Patent Application Publication No. 2014/0140585; -   U.S. Patent Application Publication No. 2014/0151453; -   U.S. Patent Application Publication No. 2014/0152882; -   U.S. Patent Application Publication No. 2014/0158770; -   U.S. Patent Application Publication No. 2014/0159869; -   U.S. Patent Application Publication No. 2014/0166755; -   U.S. Patent Application Publication No. 2014/0166759; -   U.S. Patent Application Publication No. 2014/0168787; -   U.S. Patent Application Publication No. 2014/0175165; -   U.S. Patent Application Publication No. 2014/0175172; -   U.S. Patent Application Publication No. 2014/0191644; -   U.S. Patent Application Publication No. 2014/0191913; -   U.S. Patent Application Publication No. 2014/0197238; -   U.S. Patent Application Publication No. 2014/0197239; -   U.S. Patent Application Publication No. 2014/0197304; -   U.S. Patent Application Publication No. 2014/0214631; -   U.S. Patent Application Publication No. 2014/0217166; -   U.S. Patent Application Publication No. 2014/0217180; -   U.S. Patent Application Publication No. 2014/0231500; -   U.S. Patent Application Publication No. 2014/0232930; -   U.S. Patent Application Publication No. 2014/0247315; -   U.S. Patent Application Publication No. 2014/0263493; -   U.S. Patent Application Publication No. 2014/0263645; -   U.S. Patent Application Publication No. 2014/0267609; -   U.S. Patent Application Publication No. 2014/0270196; -   U.S. Patent Application Publication No. 2014/0270229; -   U.S. Patent Application Publication No. 2014/0278387; -   U.S. Patent Application Publication No. 2014/0278391; -   U.S. Patent Application Publication No. 2014/0282210; -   U.S. Patent Application Publication No. 2014/0284384; -   U.S. Patent Application Publication No. 2014/0288933; -   U.S. Patent Application Publication No. 2014/0297058; -   U.S. Patent Application Publication No. 2014/0299665; -   U.S. Patent Application Publication No. 2014/0312121; -   U.S. Patent Application Publication No. 2014/0319220; -   U.S. Patent Application Publication No. 2014/0319221; -   U.S. Patent Application Publication No. 2014/0326787; -   U.S. Patent Application Publication No. 2014/0332590; -   U.S. Patent Application Publication No. 2014/0344943; -   U.S. Patent Application Publication No. 2014/0346233; -   U.S. Patent Application Publication No. 2014/0351317; -   U.S. Patent Application Publication No. 2014/0353373; -   U.S. Patent Application Publication No. 2014/0361073; -   U.S. Patent Application Publication No. 2014/0361082; -   U.S. Patent Application Publication No. 2014/0362184; -   U.S. Patent Application Publication No. 2014/0363015; -   U.S. Patent Application Publication No. 2014/0369511; -   U.S. Patent Application Publication No. 2014/0374483; -   U.S. Patent Application Publication No. 2014/0374485; -   U.S. Patent Application Publication No. 2015/0001301; -   U.S. Patent Application Publication No. 2015/0001304; -   U.S. Patent Application Publication No. 2015/0003673; -   U.S. Patent Application Publication No. 2015/0009338; -   U.S. Patent Application Publication No. 2015/0009610; -   U.S. Patent Application Publication No. 2015/0014416; -   U.S. Patent Application Publication No. 2015/0021397; -   U.S. Patent Application Publication No. 2015/0028102; -   U.S. Patent Application Publication No. 2015/0028103; -   U.S. Patent Application Publication No. 2015/0028104; -   U.S. Patent Application Publication No. 2015/0029002; -   U.S. Patent Application Publication No. 2015/0032709; -   U.S. Patent Application Publication No. 2015/0039309; -   U.S. Patent Application Publication No. 2015/0039878; -   U.S. Patent Application Publication No. 2015/0040378; -   U.S. Patent Application Publication No. 2015/0048168; -   U.S. Patent Application Publication No. 2015/0049347; -   U.S. Patent Application Publication No. 2015/0051992; -   U.S. Patent Application Publication No. 2015/0053766; -   U.S. Patent Application Publication No. 2015/0053768; -   U.S. Patent Application Publication No. 2015/0053769; -   U.S. Patent Application Publication No. 2015/0060544; -   U.S. Patent Application Publication No. 2015/0062366; -   U.S. Patent Application Publication No. 2015/0063215; -   U.S. Patent Application Publication No. 2015/0063676; -   U.S. Patent Application Publication No. 2015/0069130; -   U.S. Patent Application Publication No. 2015/0071819; -   U.S. Patent Application Publication No. 2015/0083800; -   U.S. Patent Application Publication No. 2015/0086114; -   U.S. Patent Application Publication No. 2015/0088522; -   U.S. Patent Application Publication No. 2015/0096872; -   U.S. Patent Application Publication No. 2015/0099557; -   U.S. Patent Application Publication No. 2015/0100196; -   U.S. Patent Application Publication No. 2015/0102109; -   U.S. Patent Application Publication No. 2015/0115035; -   U.S. Patent Application Publication No. 2015/0127791; -   U.S. Patent Application Publication No. 2015/0128116; -   U.S. Patent Application Publication No. 2015/0129659; -   U.S. Patent Application Publication No. 2015/0133047; -   U.S. Patent Application Publication No. 2015/0134470; -   U.S. Patent Application Publication No. 2015/0136851; -   U.S. Patent Application Publication No. 2015/0136854; -   U.S. Patent Application Publication No. 2015/0142492; -   U.S. Patent Application Publication No. 2015/0144692; -   U.S. Patent Application Publication No. 2015/0144698; -   U.S. Patent Application Publication No. 2015/0144701; -   U.S. Patent Application Publication No. 2015/0149946; -   U.S. Patent Application Publication No. 2015/0161429; -   U.S. Patent Application Publication No. 2015/0169925; -   U.S. Patent Application Publication No. 2015/0169929; -   U.S. Patent Application Publication No. 2015/0178523; -   U.S. Patent Application Publication No. 2015/0178534; -   U.S. Patent Application Publication No. 2015/0178535; -   U.S. Patent Application Publication No. 2015/0178536; -   U.S. Patent Application Publication No. 2015/0178537; -   U.S. Patent Application Publication No. 2015/0181093; -   U.S. Patent Application Publication No. 2015/0181109; -   U.S. patent application Ser. No. 13/367,978 for a Laser Scanning     Module Employing an Elastomeric U-Hinge Based Laser Scanning     Assembly, filed Feb. 7, 2012 (Feng et al.); -   U.S. patent application Ser. No. 29/458,405 for an Electronic     Device, filed Jun. 19, 2013 (Fitch et al.); -   U.S. patent application Ser. No. 29/459,620 for an Electronic Device     Enclosure, filed Jul. 2, 2013 (London et al.); -   U.S. patent application Ser. No. 29/468,118 for an Electronic Device     Case, filed Sep. 26, 2013 (Oberpriller et al.); -   U.S. patent application Ser. No. 14/150,393 for Indicia-reader     Having Unitary Construction Scanner, filed Jan. 8, 2014 (Colavito et     al.); -   U.S. patent application Ser. No. 14/200,405 for Indicia Reader for     Size-Limited Applications filed Mar. 7, 2014 (Feng et al.); -   U.S. patent application Ser. No. 14/231,898 for Hand-Mounted     Indicia-Reading Device with Finger Motion Triggering filed Apr. 1,     2014 (Van Horn et al.); -   U.S. patent application Ser. No. 29/486,759 for an Imaging Terminal,     filed Apr. 2, 2014 (Oberpriller et al.); -   U.S. patent application Ser. No. 14/257,364 for Docking System and     Method Using Near Field Communication filed Apr. 21, 2014     (Showering); -   U.S. patent application Ser. No. 14/264,173 for Autofocus Lens     System for Indicia Readers filed Apr. 29, 2014 (Ackley et al.); -   U.S. patent application Ser. No. 14/277,337 for MULTIPURPOSE OPTICAL     READER, filed May 14, 2014 (Jovanovski et al.); -   U.S. patent application Ser. No. 14/283,282 for TERMINAL HAVING     ILLUMINATION AND FOCUS CONTROL filed May 21, 2014 (Liu et al.); -   U.S. patent application Ser. No. 14/327,827 for a MOBILE-PHONE     ADAPTER FOR ELECTRONIC TRANSACTIONS, filed Jul. 10, 2014 (Hejl); -   U.S. patent application Ser. No. 14/334,934 for a SYSTEM AND METHOD     FOR INDICIA VERIFICATION, filed Jul. 18, 2014 (Hejl); -   U.S. patent application Ser. No. 14/339,708 for LASER SCANNING CODE     SYMBOL READING SYSTEM, filed Jul. 24, 2014 (Xian et al.); -   U.S. patent application Ser. No. 14/340,627 for an AXIALLY     REINFORCED FLEXIBLE SCAN ELEMENT, filed Jul. 25, 2014 (Rueblinger et     al.); -   U.S. patent application Ser. No. 14/446,391 for MULTIFUNCTION POINT     OF SALE APPARATUS WITH OPTICAL SIGNATURE CAPTURE filed Jul. 30, 2014     (Good et al.); -   U.S. patent application Ser. No. 14/452,697 for INTERACTIVE INDICIA     READER, filed Aug. 6, 2014 (Todeschini); -   U.S. patent application Ser. No. 14/453,019 for DIMENSIONING SYSTEM     WITH GUIDED ALIGNMENT, filed Aug. 6, 2014 (Li et al.); -   U.S. patent application Ser. No. 14/462,801 for MOBILE COMPUTING     DEVICE WITH DATA COGNITION SOFTWARE, filed on Aug. 19, 2014     (Todeschini et al.); -   U.S. patent application Ser. No. 14/483,056 for VARIABLE DEPTH OF     FIELD BARCODE SCANNER filed Sep. 10, 2014 (McCloskey et al.); -   U.S. patent application Ser. No. 14/513,808 for IDENTIFYING     INVENTORY ITEMS IN A STORAGE FACILITY filed Oct. 14, 2014 (Singel et     al.); -   U.S. patent application Ser. No. 14/519,195 for HANDHELD     DIMENSIONING SYSTEM WITH FEEDBACK filed Oct. 21, 2014 (Laffargue et     al.); -   U.S. patent application Ser. No. 14/519,179 for DIMENSIONING SYSTEM     WITH MULTIPATH INTERFERENCE MITIGATION filed Oct. 21, 2014 (Thuries     et al.); -   U.S. patent application Ser. No. 14/519,211 for SYSTEM AND METHOD     FOR DIMENSIONING filed Oct. 21, 2014 (Ackley et al.); -   U.S. patent application Ser. No. 14/519,233 for HANDHELD DIMENSIONER     WITH DATA-QUALITY INDICATION filed Oct. 21, 2014 (Laffargue et al.); -   U.S. patent application Ser. No. 14/519,249 for HANDHELD     DIMENSIONING SYSTEM WITH MEASUREMENT-CONFORMANCE FEEDBACK filed Oct.     21, 2014 (Ackley et al.);

U.S. patent application Ser. No. 14/527,191 for METHOD AND SYSTEM FOR RECOGNIZING SPEECH USING WILDCARDS IN AN EXPECTED RESPONSE filed Oct. 29, 2014 (Braho et al.);

-   U.S. patent application Ser. No. 14/529,563 for ADAPTABLE INTERFACE     FOR A MOBILE COMPUTING DEVICE filed Oct. 31, 2014 (Schoon et al.); -   U.S. patent application Ser. No. 14/529,857 for BARCODE READER WITH     SECURITY FEATURES filed Oct. 31, 2014 (Todeschini et al.); -   U.S. patent application Ser. No. 14/398,542 for PORTABLE ELECTRONIC     DEVICES HAVING A SEPARATE LOCATION TRIGGER UNIT FOR USE IN     CONTROLLING AN APPLICATION UNIT filed Nov. 3, 2014 (Bian et al.); -   U.S. patent application Ser. No. 14/531,154 for DIRECTING AN     INSPECTOR THROUGH AN INSPECTION filed Nov. 3, 2014 (Miller et al.); -   U.S. patent application Ser. No. 14/533,319 for BARCODE SCANNING     SYSTEM USING WEARABLE DEVICE WITH EMBEDDED CAMERA filed Nov. 5, 2014     (Todeschini); -   U.S. patent application Ser. No. 14/535,764 for CONCATENATED     EXPECTED RESPONSES FOR SPEECH RECOGNITION filed Nov. 7, 2014 (Braho     et al.); -   U.S. patent application Ser. No. 14/568,305 for AUTO-CONTRAST     VIEWFINDER FOR AN INDICIA READER filed Dec. 12, 2014 (Todeschini); -   U.S. patent application Ser. No. 14/573,022 for DYNAMIC DIAGNOSTIC     INDICATOR GENERATION filed Dec. 17, 2014 (Goldsmith); -   U.S. patent application Ser. No. 14/578,627 for SAFETY SYSTEM AND     METHOD filed Dec. 22, 2014 (Ackley et al.); -   U.S. patent application Ser. No. 14/580,262 for MEDIA GATE FOR     THERMAL TRANSFER PRINTERS filed Dec. 23, 2014 (Bowles); -   U.S. patent application Ser. No. 14/590,024 for SHELVING AND PACKAGE     LOCATING SYSTEMS FOR DELIVERY VEHICLES filed Jan. 6, 2015 (Payne); -   U.S. patent application Ser. No. 14/596,757 for SYSTEM AND METHOD     FOR DETECTING BARCODE PRINTING ERRORS filed Jan. 14, 2015 (Ackley); -   U.S. patent application Ser. No. 14/416,147 for OPTICAL READING     APPARATUS HAVING VARIABLE SETTINGS filed Jan. 21, 2015 (Chen et     al.); -   U.S. patent application Ser. No. 14/614,706 for DEVICE FOR     SUPPORTING AN ELECTRONIC TOOL ON A USER'S HAND filed Feb. 5, 2015     (Oberpriller et al.); -   U.S. patent application Ser. No. 14/614,796 for CARGO APPORTIONMENT     TECHNIQUES filed Feb. 5, 2015 (Morton et al.); -   U.S. patent application Ser. No. 29/516,892 for TABLE COMPUTER filed     Feb. 6, 2015 (Bidwell et al.); -   U.S. patent application Ser. No. 14/619,093 for METHODS FOR TRAINING     A SPEECH RECOGNITION SYSTEM filed Feb. 11, 2015 (Pecorari); -   U.S. patent application Ser. No. 14/628,708 for DEVICE, SYSTEM, AND     METHOD FOR DETERMINING THE STATUS OF CHECKOUT LANES filed Feb. 23,     2015 (Todeschini); -   U.S. patent application Ser. No. 14/630,841 for TERMINAL INCLUDING     IMAGING ASSEMBLY filed Feb. 25, 2015 (Gomez et al.); -   U.S. patent application Ser. No. 14/635,346 for SYSTEM AND METHOD     FOR RELIABLE STORE-AND-FORWARD DATA HANDLING BY ENCODED INFORMATION     READING TERMINALS filed Mar. 2, 2015 (Sevier); -   U.S. patent application Ser. No. 29/519,017 for SCANNER filed Mar.     2, 2015 (Zhou et al.); -   U.S. patent application Ser. No. 14/405,278 for DESIGN PATTERN FOR     SECURE STORE filed Mar. 9, 2015 (Zhu et al.); -   U.S. patent application Ser. No. 14/660,970 for DECODABLE INDICIA     READING TERMINAL WITH COMBINED ILLUMINATION filed Mar. 18, 2015     (Kearney et al.); -   U.S. patent application Ser. No. 14/661,013 for REPROGRAMMING SYSTEM     AND METHOD FOR DEVICES INCLUDING PROGRAMMING SYMBOL filed Mar. 18,     2015 (Soule et al.); -   U.S. patent application Ser. No. 14/662,922 for MULTIFUNCTION POINT     OF SALE SYSTEM filed Mar. 19, 2015 (Van Horn et al.); -   U.S. patent application Ser. No. 14/663,638 for VEHICLE MOUNT     COMPUTER WITH CONFIGURABLE IGNITION SWITCH BEHAVIOR filed Mar. 20,     2015 (Davis et al.); -   U.S. patent application Ser. No. 14/664,063 for METHOD AND     APPLICATION FOR SCANNING A BARCODE WITH A SMART DEVICE WHILE     CONTINUOUSLY RUNNING AND DISPLAYING AN APPLICATION ON THE SMART     DEVICE DISPLAY filed Mar. 20, 2015 (Todeschini); -   U.S. patent application Ser. No. 14/669,280 for TRANSFORMING     COMPONENTS OF A WEB PAGE TO VOICE PROMPTS filed Mar. 26, 2015     (Funyak et al.); -   U.S. patent application Ser. No. 14/674,329 for AIMER FOR BARCODE     SCANNING filed Mar. 31, 2015 (Bidwell); -   U.S. patent application Ser. No. 14/676,109 for INDICIA READER filed     Apr. 1, 2015 (Huck); -   U.S. patent application Ser. No. 14/676,327 for DEVICE MANAGEMENT     PROXY FOR SECURE DEVICES filed Apr. 1, 2015 (Yeakley et al.); -   U.S. patent application Ser. No. 14/676,898 for NAVIGATION SYSTEM     CONFIGURED TO INTEGRATE MOTION SENSING DEVICE INPUTS filed Apr. 2,     2015 (Showering); -   U.S. patent application Ser. No. 14/679,275 for DIMENSIONING SYSTEM     CALIBRATION SYSTEMS AND METHODS filed Apr. 6, 2015 (Laffargue et     al.); -   U.S. patent application Ser. No. 29/523,098 for HANDLE FOR A TABLET     COMPUTER filed Apr. 7, 2015 (Bidwell et al.); -   U.S. patent application Ser. No. 14/682,615 for SYSTEM AND METHOD     FOR POWER MANAGEMENT OF MOBILE DEVICES filed Apr. 9, 2015 (Murawski     et al.); -   U.S. patent application Ser. No. 14/686,822 for MULTIPLE PLATFORM     SUPPORT SYSTEM AND METHOD filed Apr. 15, 2015 (Qu et al.); -   U.S. patent application Ser. No. 14/687,289 for SYSTEM FOR     COMMUNICATION VIA A PERIPHERAL HUB filed Apr. 15, 2015 (Kohtz et     al.); -   U.S. patent application Ser. No. 29/524,186 for SCANNER filed Apr.     17, 2015 (Zhou et al.); -   U.S. patent application Ser. No. 14/695,364 for MEDICATION     MANAGEMENT SYSTEM filed Apr. 24, 2015 (Sewell et al.); -   U.S. patent application Ser. No. 14/695,923 for SECURE UNATTENDED     NETWORK AUTHENTICATION filed Apr. 24, 2015 (Kubler et al.); -   U.S. patent application Ser. No. 29/525,068 for TABLET COMPUTER WITH     REMOVABLE SCANNING DEVICE filed Apr. 27, 2015 (Schulte et al.); -   U.S. patent application Ser. No. 14/699,436 for SYMBOL READING     SYSTEM HAVING PREDICTIVE DIAGNOSTICS filed Apr. 29, 2015 (Nahill et     al.); -   U.S. patent application Ser. No. 14/702,110 for SYSTEM AND METHOD     FOR REGULATING BARCODE DATA INJECTION INTO A RUNNING APPLICATION ON     A SMART DEVICE filed May 1, 2015 (Todeschini et al.); -   U.S. patent application Ser. No. 14/702,979 for TRACKING BATTERY     CONDITIONS filed May 4, 2015 (Young et al.); -   U.S. patent application Ser. No. 14/704,050 for INTERMEDIATE LINEAR     POSITIONING filed May 5, 2015 (Charpentier et al.); -   U.S. patent application Ser. No. 14/705,012 for HANDS-FREE HUMAN     MACHINE INTERFACE RESPONSIVE TO A DRIVER OF A VEHICLE filed May 6,     2015 (Fitch et al.); -   U.S. patent application Ser. No. 14/705,407 for METHOD AND SYSTEM TO     PROTECT SOFTWARE-BASED NETWORK-CONNECTED DEVICES FROM ADVANCED     PERSISTENT THREAT filed May 6, 2015 (Hussey et al.); -   U.S. patent application Ser. No. 14/707,037 for SYSTEM AND METHOD     FOR DISPLAY OF INFORMATION USING A VEHICLE-MOUNT COMPUTER filed May     8, 2015 (Chamberlin); -   U.S. patent application Ser. No. 14/707,123 for APPLICATION     INDEPENDENT DEX/UCS INTERFACE filed May 8, 2015 (Pape); -   U.S. patent application Ser. No. 14/707,492 for METHOD AND APPARATUS     FOR READING OPTICAL INDICIA USING A PLURALITY OF DATA SOURCES filed     May 8, 2015 (Smith et al.); -   U.S. patent application Ser. No. 14/710,666 for PRE-PAID USAGE     SYSTEM FOR ENCODED INFORMATION READING TERMINALS filed May 13, 2015     (Smith); -   U.S. patent application Ser. No. 29/526,918 for CHARGING BASE filed     May 14, 2015 (Fitch et al.); -   U.S. patent application Ser. No. 14/715,672 for AUGUMENTED REALITY     ENABLED HAZARD DISPLAY filed May 19, 2015 (Venkatesha et al.); -   U.S. patent application Ser. No. 14/715,916 for EVALUATING IMAGE     VALUES filed May 19, 2015 (Ackley); -   U.S. patent application Ser. No. 14/722,608 for INTERACTIVE USER     INTERFACE FOR CAPTURING A DOCUMENT IN AN IMAGE SIGNAL filed May 27,     2015 (Showering et al.); -   U.S. patent application Ser. No. 29/528,165 for IN-COUNTER BARCODE     SCANNER filed May 27, 2015 (Oberpriller et al.); -   U.S. patent application Ser. No. 14/724,134 for ELECTRONIC DEVICE     WITH WIRELESS PATH SELECTION CAPABILITY filed May 28, 2015 (Wang et     al.); -   U.S. patent application Ser. No. 14/724,849 for METHOD OF     PROGRAMMING THE DEFAULT CABLE INTERFACE SOFTWARE IN AN INDICIA     READING DEVICE filed May 29, 2015 (Barten); -   U.S. patent application Ser. No. 14/724,908 for IMAGING APPARATUS     HAVING IMAGING ASSEMBLY filed May 29, 2015 (Barber et al.); -   U.S. patent application Ser. No. 14/725,352 for APPARATUS AND     METHODS FOR MONITORING ONE OR MORE PORTABLE DATA TERMINALS     (Caballero et al.); -   U.S. patent application Ser. No. 29/528,590 for ELECTRONIC DEVICE     filed May 29, 2015 (Fitch et al.); -   U.S. patent application Ser. No. 29/528,890 for MOBILE COMPUTER     HOUSING filed Jun. 2, 2015 (Fitch et al.); -   U.S. patent application Ser. No. 14/728,397 for DEVICE MANAGEMENT     USING VIRTUAL INTERFACES CROSS-REFERENCE TO RELATED APPLICATIONS     filed Jun. 2, 2015 (Caballero); -   U.S. patent application Ser. No. 14/732,870 for DATA COLLECTION     MODULE AND SYSTEM filed Jun. 8, 2015 (Powilleit); -   U.S. patent application Ser. No. 29/529,441 for INDICIA READING     DEVICE filed Jun. 8, 2015 (Zhou et al.); -   U.S. patent application Ser. No. 14/735,717 for INDICIA-READING     SYSTEMS HAVING AN INTERFACE WITH A USER'S NERVOUS SYSTEM filed Jun.     10, 2015 (Todeschini); -   U.S. patent application Ser. No. 14/738,038 for METHOD OF AND SYSTEM     FOR DETECTING OBJECT WEIGHING INTERFERENCES filed Jun. 12, 2015     (Amundsen et al.); -   U.S. patent application Ser. No. 14/740,320 for TACTILE SWITCH FOR A     MOBILE ELECTRONIC DEVICE filed Jun. 16, 2015 (Bandringa); -   U.S. patent application Ser. No. 14/740,373 for CALIBRATING A VOLUME     DIMENSIONER filed Jun. 16, 2015 (Ackley et al.); -   U.S. patent application Ser. No. 14/742,818 for INDICIA READING     SYSTEM EMPLOYING DIGITAL GAIN CONTROL filed Jun. 18, 2015 (Xian et     al.); -   U.S. patent application Ser. No. 14/743,257 for WIRELESS MESH POINT     PORTABLE DATA TERMINAL filed Jun. 18, 2015 (Wang et al.); -   U.S. patent application Ser. No. 29/530,600 for CYCLONE filed Jun.     18, 2015 (Vargo et al); -   U.S. patent application Ser. No. 14/744,633 for IMAGING APPARATUS     COMPRISING IMAGE SENSOR ARRAY HAVING SHARED GLOBAL SHUTTER CIRCUITRY     filed Jun. 19, 2015 (Wang); -   U.S. patent application Ser. No. 14/744,836 for CLOUD-BASED SYSTEM     FOR READING OF DECODABLE INDICIA filed Jun. 19, 2015 (Todeschini et     al.); -   U.S. patent application Ser. No. 14/745,006 for SELECTIVE OUTPUT OF     DECODED MESSAGE DATA filed Jun. 19, 2015 (Todeschini et al.); -   U.S. patent application Ser. No. 14/747,197 for OPTICAL PATTERN     PROJECTOR filed Jun. 23, 2015 (Thuries et al.); -   U.S. patent application Ser. No. 14/747,490 for DUAL-PROJECTOR     THREE-DIMENSIONAL SCANNER filed Jun. 23, 2015 (Jovanovski et al.);     and -   U.S. patent application Ser. No. 14/748,446 for CORDLESS INDICIA     READER WITH A MULTIFUNCTION COIL FOR WIRELESS CHARGING AND EAS     DEACTIVATION, filed Jun. 24, 2015 (Xie et al.). 

What is claimed is:
 1. A method of managing NAND flash memory in an electronic device, comprising: collecting files that are marked for deletion or truncation; monitoring an activity level of the electronic device; creating a system folder in the NAND flash memory to contain files marked for deletion or truncation; moving files marked for deletion or truncation to the system folder; monitoring a size of the system folder in the NAND flash memory; determining if the electronic device is idle; in an instance in which the activity level of the electronic device is determined to be idle, trimming the system folder; and in an instance in which the size of the system folder in the NAND flash memory exceeds a predetermined size, trimming the system folder, wherein trimming the system folder comprises deleting the files in the system folder.
 2. The method of claim 1, comprising loading a file system filter driver at boot time of the electronic device.
 3. The method of claim 1, comprising setting a correct filter mode of the file system driver.
 4. The method of claim 1, comprising assigning a thread priority to the file system filter driver.
 5. The method of claim 1, comprising creating hooks to a file system of the electronic device from the file system device driver.
 6. The method of claim 1, comprising extending file system I/O functions to the file system device driver.
 7. The method of claim 1, comprising spawning a process to monitor idle time of the electronic device.
 8. The method of claim 1, comprising spawning a process to monitor the system folder.
 9. The method of claim 1, wherein trimming the flash memory of the electronic device occurs at the next reboot of the electronic device.
 10. The method of claim 1, wherein trimming the flash memory of the electronic device occurs when the electronic device is determined to be idle.
 11. An electronic device, comprising: a NAND flash memory with a file system; an operating system having file system I/O functions; and a file system filter driver operative to: execute file system I/O functions of the operating system, monitor an activity level of the electronic device, create a system folder on the NAND flash memory to contain files that are marked for deletion or truncation, move files that are marked for deletion or truncation to the system folder, determine if the electronic device is idle, monitor the size of the system folder, trim the system folder at an instance when the activity level of the electronic device is determined to be idle; and trim the system folder at an instance when the size of the system folder on the NAND flash memory exceeds a predetermined size, wherein trimming the system folder comprises deleting the files in the system folder.
 12. The electronic device of claim 11, wherein the electronic device is configured to load the file system filter driver at boot time of the electronic device.
 13. The electronic device of claim 11, wherein the file system filter driver is operative to spawn a process to monitor idle time of the electronic device.
 14. The electronic device of claim 11, wherein the file system filter driver is operative to spawn a process to monitor the system folder.
 15. The electronic device of claim 11, wherein the file system filter driver is operative to trim the flash memory of the electronic device at the next reboot of the electronic device.
 16. The electronic device of claim 11, wherein the file system filter driver is operative to trim the flash memory of the electronic device when the electronic device is determined to be idle. 